from graphs import DirectedAcyclicGraph, Tree

#______________________________________________________________________________
class DiscreteBayesianNetwork(DirectedAcyclicGraph):
    """ This class enables you to create Bayesian Networks - or graphical 
        models - where every node is a discrete random variable. """
    pass

#______________________________________________________________________________
class NaiveBayes(DiscreteBayesianNetwork, Tree):
    """ A very simple, specialized type of Bayesian network.  It is a tree
        with the root C representing the cause and the children E1, E2, ... 
        En being the 'effects'.  There are no other nodes. """
    def __init__(self, name='?', root=cause):
        Tree.__init__(self, name=name, root=cause)

#______________________________________________________________________________
class LinearGaussianNetwork(DirectedAcyclicGraph):
    """ A Linear-Gaussian model is a particular type of Bayesian network
        where the random variables are all normal distributions, and 
        the means of connected variables are linearly related. """
    pass